STM32最小系统板教程第一章|开发板资源介绍
置顶公众号,不错过每一讲内容。
完整课程体系(公众号每日更新一讲):
本讲知识点:STM32简介、板载资源简介
本章主要向大家介绍我们的实验平台:TJ-STM32F103-Micro最小系统板。这款小开发板是基于嵌入式教学西安天际智联信息技术有限公司推出的产品,此前我们推出的DragonFly四旋翼飞行器教学平台受到了高校学生和同行的高度好评。于是我们决定推出这款精简的最小系统板:TJ-STM32F103-Micro开发板,来帮助更多初学者入门STM32。ST官方提供强大且易用的标准库函数,使开发过程更加方便快捷,我们这款最小系统板性价比高,做工精致,教程资料详细,因此对于日常工作的辅助开发,高校学生及广大初学者入门一款MCU来说,都是一个非常好的选择。
1.1 开发板简介
TJ-STM32F103-Micro是基于STM32F103C8T6的最小系统板。这款小开发板可以用来入门学习当前主流的MCU-STM32F103,也可以用来辅助开发者快速验证以STM32F103为主控的方案可行性。
图1-1 开发板外设资源
如图1-1所示,TJ-STM32F103-Micro小开发板提供给用户的外设有一个复位按键、一个用户按键、一个电源指示LED、一个用户LED,此外也提供了集USB通讯供电为一体的Micro-USB接口、e-Link32仿真器连接的SWD接口,提供了32.768KHz的RTC晶振以及8MHz高速外部晶振,除了用户LED、用户按键、晶振、USB占用的GPIO口之外,剩余所有的GPIO接口都全部引出,方便用户拓展其他模块使用。
TJ-STM32F103-Micro开发板引脚功能说明图:
图1-2开发板外设接口
初学者一看此图估计一脸迷(meng)茫(bi),不过不要害怕,接下来笔者将针对此图进行详细说明。
首先靠近核心板的两列引脚标识为它的默认功能,所谓默认功能就是单片机上电复位后的功能,均为普通GPIO口,其次剩余两边两列的引脚为它的复用功能,所谓复用功能就是指需要我们通过程序代码配置后使得这些引脚具有的第二功能。图1-2中的右上角图例标识为对应相同外设的引脚标识。举个例子: 3V3 标识为核心板电源引脚, ADC 标识为所有具有ADC功能的引脚;默认功能中除了 5V 、 3V3 、 GND 以及 标识引脚外,其余 标识均为普通GPIO口,可以配置为输入或输出来使用;复用功能中例如PA9、PA10,单片机上电默认为普通GPIO引脚,进行复用配置后便具有USART1(串口1)的功能,可以进行串口通信。其他引脚复用与之类似。
1.2 STM32简介
1.2.1 Cortex内核(ARM内核)
ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务,全世界超过95%的智能手机和平板电脑都采用ARM架构。Cortex系列属于ARMv7架构,这是2010年ARM公司最新的指令集架构。ARMv7架构定义了三大分工明确的系列:“ A ”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“ M ”系列对微控制器。
TJ-STM32F103 Micro开发板的MCU就是基于Cortex-M3内核,因此对于学习单片机的同学,STM32是个很好的开始。
图1-3 ST 公司的ARM Cortex-M内核产品线
1.2.2 ST意法半导体
本开发板板载的主控芯片为STM32F103C8T6,是意法半导体在MCU(微控制器MicroControllerUnit)领域推出的非常经典的芯片系列,因其强大的功能和丰富的内部资源,以及广泛的使用者,初学者一般都是将其作为入门的芯片,因此在嵌入式领域应用极广,所以网上STM32F103的资料和使用经验占比更多。
ST的MCU系列种类繁多(常见的是F和L系列),但他们有一套命名规范,来帮助我们在工作学习中选择出合适的MCU。
下图1-4截自《STM32F10xxx参考手册》,图中只截取了部分重要的命名,具体可参考资料包下-STM32参考资料文件夹中《STM32F10xxx参考手册》2-3页,在实际开发过程中,STM32参考手册和数据手册是开发人员必不可少的参考资料。
图1-4 STM32产品命名
1.3 芯片内部资源简介
下图1-5截选自《STM32F103C8T6数据手册》,简要介绍了本款芯片的内部资源。
图1-5 C8T6资源简介
1.3.1 GPIO
本款芯片共有48个引脚,除去电源(VDD)、地(VSS)、复位(NRST)、BOOT0、VBAT这些引脚,用户可配置的引脚共有37个,分类如下:
GPIOA:PA0、PA1、PA2、PA3、PA4、PA5、PA6、PA7、PA8、PA9、PA10、PA11、PA12、(PA13)、(PA14)、PA15
GPIOB:PB0、PB1、PB2、PB3、PB4、PB5、PB6、PB7、PB8、PB9、PB10、PB11、PB12、PB13、PB14、PB15
GPIOC:PC13、(PC14)、(PC15)
GPIOD:PD0、PD1
注意:
① PA13(SWDIO)与PA14(SWCLK)这两个引脚为程序下载和调试所用的管脚,单片机上电后默认为该功能,绝大多数情况下不需要配置这两个管脚,否则使用市面上部分D版仿真器无法无法再次给单片机下载程序!!!
② PC14、PC15为外部高速晶振管脚,使用外部高速晶振时,不要配置这两个管脚;
③ PD0、PD1为外部低速晶振管脚,使用外部低速晶振时,不要配置这两个管脚;
图1-6 GPIO端口基本结构
GPIO通常可以被配置为以下8种模式:
通用推挽输出(GPIO_Mode_Out_PP)
模拟输入(GPIO_Mode_AIN)
通用开漏输出(GPIO_Mode_Out_OD)
上拉输入(GPIO_Mode_IPU)
复用推挽输出(GPIO_Mode_AF_PP)
下拉输入(GPIO_Mode_IPD)
复用开漏输出(GPIO_Mode_AF_OD)
浮空输入(GPIO_Mode_IN_FLOATING)
1.3.2 USART
本款芯片共有三个串口可供用户配置,分别为USART1、USART2、USART3。USART又称为通用同步异步收发器,它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。其中TX为数据输出管脚,RX为数据输入管脚。
图1-7 USART框图
1.3.3 WDG
本款芯片共有两个WDG可供用户配置,WDG称之为“ 看门狗 ”。一个为IWDG(独立看门狗)一个为WWDG(窗口看门狗),两个看门狗设备均可用来检测和解决由软件错误引起的故障。IWDG最适用于那些需要看门狗作为一个在主程序之外,能够完全独立工作并且对时间精度要求较低的场景;WWDG最适用于那些要求看门狗在精确计时窗口起作用的应用程序。
图1-8 独立看门狗框图
图1-9 窗口看门狗框图
1.3.4 TIM
本款芯片共有四个定时器可供用户配置使用,分别为TIM1、TIM2、TIM3、TIM4。其中TIM1为高级定时器,其余三个为通用定时器。高级定时器的主要功能有:16位向上、向下、向上/下自动装载计数器;16位可编程预分频器;4个独立通道(可配置为输入捕获、输出比较、PWM生成、单脉冲模式输出四种功能模式);死区时间可编程的互补输出;使用外部信号控制定时器和定时器互联的同步电路;支持针对定位的增量(正交)编码器和霍尔传感器电路等功能。通用定时器的主要功能除了不具备死区互补输出、刹车信号输入等配置其余功能与高级定时器一致。通常情况下通用定时器应用频率较高。
图1-10 通用定时器框图
1.3.5 RTC
本款芯片共有一个RTC可供用户配置使用,RTC称之为实时时钟。实时时钟是一个独立的定时器,RTC模块拥有一组连续计数的计数器,在软件配置下,可以提供时钟日历的功能。
图1-11 RTC框图
1.3.6 ADC
本款芯片共有两个ADC可供用户配置使用,分别是ADC1、ADC2。ADC即为模拟/数字转换器,本芯片的ADC是一种12位的逐次逼近型模拟数字转换器,它有多达18个通道,可测量16个外部和2个内部信号源。每个通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐的方式存储在16位数据寄存器中。
图1-12 单个ADC框图
1.3.7 DMA
本款芯片共有两个DMA控制器可供用户配置使用,分别为DMA1、DMA2。DMA称之为直接存储器存取,它可以用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。数据可通过DMA快速地移动,整个过程无需CPU的干预,因此可以节省CPU的资源来做其他操作。两个DMA控制器共有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。
图1-13 DMA框图
1.3.8 I2C
本款芯片共有两个I2C可供用户配置使用,分别为I2C1、I2C2。I2C(Inter-Integrated Circuit)是一种通讯协议,它是由飞利浦(Philips)公司开发的,由于它引脚少,硬件实现简单,可扩展性强,现在被广泛使用在系统内多个集成电路之间的通讯。由于硬件I2C的使用不便捷,软件模拟I2C的可移植性强的特点,在工程实际开发中,软件模拟I2C的应用更加广泛。
图1-14 I2C时序
1.3.9 SPI
本款芯片共有两个SPI可供用户配置使用,分别为SPI1、SPI2。SPI是一种串行通讯协议,它允许芯片与外部设备以半/全双工、同步、串行方式进行通信。
图1-15 SPI框图
1.3.10 CAN
本款芯片共有一个CAN可供用户配置使用,CAN(Controller Area Network)称之为控制局域网。CAN是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准,是国际上应用最广泛的现场总线之一。
CAN控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,发送方通过使总线电平发生变化,将消息发送给接收方。
1.3.11 USB
本款芯片共有一个USB可供用户配置使用,USB(Universal Serial Bus)称之为通用串行总线。它是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。
视频课程(点击文末左下角“阅读原文”,可看高清视频):
https://v.qq.com/txp/iframe/player.html?vid=b0736fkrhhc&width=500&height=375&auto=0
最小系统板的购买链接(复制到淘宝打开即可):
https://item.taobao.com/item.htm?&id=573256065703
elink32仿真器购买链接(复制到淘宝打开即可):
https://item.taobao.com/item.htm?&id=558334383550
感谢您阅读“电子开发学习”的文章,如果您觉得图文能帮助您学习,欢迎关注我们。请点击右上角按钮,选择“查看公众号”,再点击关注即可。或者可以通过搜索公众号的方式关注: electricstudy 。您可以通过扫码下面的二维码关注我们。如果您想阅读往期文章,可点击“查看历史消息”。
历史好文推荐(点击文章标题可跳转):
小马哥四轴硬件第1讲、 Altium Designer安装与介绍
如何让Arduino IDE支持你手里的STM32 nucleo开发板